home *** CD-ROM | disk | FTP | other *** search
/ Aminet 5 / Aminet 5 - March 1995.iso / Aminet / dev / misc / LEDA_gene.lha / LEDA-3.1c-generic / prog / plane / d3_dic.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-08-05  |  2.3 KB  |  79 lines

  1. #include "LEDA/d3_dictionary.h"
  2.  
  3.  
  4.  
  5. main()
  6. {
  7.   double k1, l1, r1;
  8.   string k2("....."), l2, r2;
  9.   int k3, l3, r3;
  10.   int i, j;
  11.   dic3_item it;
  12.  
  13.   d3_dictionary<double,string,int,int> t;
  14.  
  15.   int MAX = read_int("number of elements = ");
  16.   dic3_item* items = new dic3_item[MAX];
  17.  
  18.   for (i=0; i<MAX; i++) {
  19.     k1 = 1+random(0,9899)/100.0;
  20.     for( j=0; j<k2.length(); j++ )
  21.       k2[j] = random(97,122);
  22.     k3 = 1+random(0,99);
  23.     items[i] = t.insert( k1, k2, k3, i );
  24.   }
  25.  
  26.   //t.print();
  27.  
  28.   forall_dic3_items( it, t )
  29.     cout << t.inf(it) << ": (" << t.key1(it) << "," 
  30.          << t.key2(it) << "," << t.key3(it) << ")" << endl;
  31.  
  32.   newline;
  33.   cout << "Enter 0 to stop queries!";
  34.   newline;
  35.  
  36.   while( (l1=read_real(" left(1) = ")) && 
  37.          (r1=read_real("right(1) = ")) ) {
  38.     l2 = read_string(" left(2) = "); r2 = read_string("right(2) = ");
  39.     l3 = read_int(" left(3) = "); r3 = read_int("right(3) = ");
  40.  
  41.     list<dic3_item> res = t.range_search( l1, r1, l2, r2, l3, r3 );
  42.     forall( it, res )
  43.       cout << t.inf(it) << ": (" << t.key1(it) << "," 
  44.                        << t.key2(it) << "," 
  45.                  << t.key3(it) << ")" << endl;
  46.   }
  47.   newline;
  48.  
  49.   cout << "min_key1: " << t.inf(t.min_key1()) << " (" 
  50.        << t.key1(t.min_key1()) << "," << t.key2(t.min_key1()) << ","
  51.        << t.key3(t.min_key1()) << ")" << endl;
  52.   cout << "min_key2: " << t.inf(t.min_key2()) << " (" 
  53.        << t.key1(t.min_key2()) << "," << t.key2(t.min_key2()) << ","
  54.        << t.key3(t.min_key2()) << ")" << endl;
  55.   cout << "min_key3: " << t.inf(t.min_key3()) << " (" 
  56.        << t.key1(t.min_key3()) << "," << t.key2(t.min_key3()) << ","
  57.        << t.key3(t.min_key3()) << ")" << endl;
  58.  
  59.   cout << "max_key1: " << t.inf(t.max_key1()) << " (" 
  60.        << t.key1(t.max_key1()) << "," << t.key2(t.max_key1()) << ","
  61.        << t.key3(t.max_key1()) << ")" << endl;
  62.   cout << "max_key2: " << t.inf(t.max_key2()) << " (" 
  63.        << t.key1(t.max_key2()) << "," << t.key2(t.max_key2()) << ","
  64.        << t.key3(t.max_key2()) << ")" << endl;
  65.   cout << "max_key3: " << t.inf(t.max_key3()) << " (" 
  66.        << t.key1(t.max_key3()) << "," << t.key2(t.max_key3()) << ","
  67.        << t.key3(t.max_key3()) << ")" << endl;
  68.  
  69.   print_statistics();
  70.  
  71.   for (i = 0; i < MAX; i++) {
  72.     t.del( t.key1(items[i]), t.key2(items[i]), t.key3(items[i]) );
  73.   }
  74.  
  75.   delete items;
  76.  
  77.   return 0;
  78. }
  79.